Avoiding Publication and Privatization Problems on Software Transactional Memory
نویسندگان
چکیده
This paper presents a new approach to exclude problems arising from dynamically switching between protected concurrent and unprotected single-threaded use of shared data when using software transactional memory in OO languages such as Java. The approach is based on a simple but effective programming model separating transactions from non-transactional operation. It prevents the application programmer from errors but does not force the software transactional memory library to observe non-transactional access and thereby preserves modularity of the software. A prototypical toolchain for validation and source code instrumentation was implemented as a proof of concept.
منابع مشابه
Anatomy of a Scalable Software Transactional Memory
Existing software transactional memory (STM) implementations often exhibit poor scalability, usually because of nonscalable mechanisms for read sharing, transactional consistency, and privatization; some STMs also have nonscalable centralized commit mechanisms. We describe novel techniques to eliminate bottlenecks from all of these mechanisms, and present SkySTM, which employs these techniques....
متن کاملImplicit Privatization Using Private Transactions
In software transactional memory (STM) systems, it is useful to isolate a memory region accessed by one thread from all others, so that it can then operate on it “privately”, that is, without the instrumentation overhead of inter-transactional synchronization. Allowing transactions to implicitly privatize memory is a source of major performance degradation in state-of-the-art STMs. The alternat...
متن کاملVallejo - Hybrid Transactional Memory with Pessimistic Concurrency Control Hybrid Transactional Memory with Pessimistic Concurrency Control1
Transactional Memory (TM) intends to simplify the design and implementation of the sharedmemory data structures used in parallel software. Many Software TM systems are based on writerlocks to protect the data being modified. Such implementations can suffer from the “privatization” problem, in which transactional and non-transactional accesses to the same location can lead to inconsistent result...
متن کاملThe Cost of Privatization
Software transactional memory (STM) guarantees that a transaction, consisting of a sequence of operations on the memory, appears to be executed atomically. In practice, it is important to be able to run transactions together with nontransactional legacy code accessing the same memory locations, by supporting privatization. Privatization should be provided without sacrificing the parallelism off...
متن کامل